IPV6下的远程RDP配置
动态DNS下远程桌面的配置
最近,在单位老是需要用到家里面的电脑的资料,拿U盘拷来栲去,感觉又显得特别麻瓜。再加上有时候想摸鱼,用电脑冲冲浪。于是有了远程电脑的需要,最开始是用了todesk的免费版,总体上需求是能满足的,但是免费版的性能有点捉襟见肘,而且由于家里面电脑是4K的分辨率,单位的是2K和1080P,不能自动缩放,使用感观也是一言难尽。
因此有了打洞,使用原生远程桌面的想法。最开始是打算的是国内买台VPS,通过frp或者nps来实现穿透内网。但是打电话给小区宽带发现,可以给光猫改桥接,可以有IPV6的公网地址,IPV4的还是内网。而且现在手机移动网也是有IPV6的,刚好可以满我的需求。
需要的条件有:
- 公网IP(这里IPV6也可以,而且湖南联通好像IPV4完全不给个人了)
- 域名
- OpenWRT
光猫路由改桥接
首先是需要获取光猫的超级密码(我也是通过网友分享,湖南长沙联通的网友可以试试这个CUAdmin#HGU),登录光猫后台,输入超级密码。然后就是路由改桥接的操作,这里由于我没有用IPTV,不知道是不是因为这个原因,我的宽带并不需要VLAN,这里我是直接取消掉使能的框,然后新建了一个连接。新建的连接就非常简单了,直接吧连接模式选成桥接就可以了,然后保存一下就行了。


对这里基本上就改好了,真的很简单。然后是切换到路由器中,设置宽带登录,动态DNS的配置。值得注意的是,我的光猫在切换桥接之后,是没办法再通过http://192.168.1.1/cu.html来访问,可能是因为光猫不再主动分配IP,我的解决办法是,手动切换路由器的WAN口协议为静态IP,改成192.168.1.3,网关改成192.168.1.1,这样就可以。
路由器配置
我的路由器是极路由B70,然后我刷的是OpenWRT,固件采用Github Actions编译的,特别的是对于动态DNS是采用了一个新插件 Lucky,在LEDE的版本中可以直接在luci app中启用。这里之所以不用自带的那个DDNS-GO,是因为只有IPV6的公网地址,OpenWRT自带防火墙的端口转发,并不能实现IPV6端口转发到IPV4端口。Lucky的话,功能更丰富,可以实现SSL证书申请、端口转发、Web服务等。
宽带登录
把光猫出来的网线插在路由器WAN口,然后登录到路由器管理界面,把WAN口切换到PPPoE协议,输入宽带账号(这个账号可以过联通网上营业厅获取,但是现在密码没办法改了,打客服也说查不到,不过我试了下后6位是可以的),保存就可以了。然后就可以看下路由器的WAN口状态,确认下有没有公网IP(令我惊讶的是,电信的似乎可以给公网IPV4地址,真是羡慕)。如果没有似乎是没必要往下看了。
端口转发
如果这里有IPV4的话,直接打开端口转发就可以了,在路由器上随机设置一个端口,然后将其流量转发到被控制电脑的3389端口(这里应该打开UDP协议会好一点)。如果只有IPV6协议的话,那似乎就要麻烦一点,由于使用的OpenWRT,防火墙自带的端口转发不支持IPV6到IPV4的转发,必须使用socat或这是上面提到的Lucky。这里Lucky的操作更简单点,不用去处理防火墙规则,直接打开端口转发,按照下图设置规则就可以了。(NOTE:这里感觉应该设置成白名单更好过滤掉本地以外的ip地址防止被黑,但是我搜了好久也没找到湖南省ipv6分配的规则😂)至此我们已经可以实现利用IP地址来远程连接电脑了,这个对IPV4可能还比较可能,对于IPV6那一大串,真的是搞不定。

动态DNS
为了避免记忆ip地址,和应对没过一段时间,宽带公网IP的变化(当然如果你是尊贵的静态IP用户,当我没说😭),可以买一个便宜域名,把IP绑定到域名上(原理上应该是在路由器运行一段代码,定时的检测WAN口IP,如果改变就以密钥访问域名托管,更改域名的解析IP地址)。方便的是Lucky也带了动态DNS功能,直接打开DDNS功能,选择新建一个DDNS任务,具体设置可以参考下图。
结语
至此整个配置就算完成了,可以拿手机流量测试下。在控制电脑打开远程桌面连接,地址就输入你绑定的域名(或者是IP地址,test.example.xyz:46885),点击连接就可以了。
Update: 20250125
由于主力机图便宜选择了AMD,目前在Win上是没有办法使用ROCM的(万恶的推土机),只能选择双系统,但是如果采用双系统的话,远程RDP无法对Linux系统起作用,同时又是家用主板不带高端的管理系统。
目前的解决方案是采用ssh连接,通过修改引导的grub.cfg的默认引导系统,选择启动不同的系统。
Linux下修改grub.cfg自然简单,直接下面的命令:
sudo vim /boot/grub/grub.cfg
# 然后把set default的数值改成2,即变成默认win的引导项
Win下修改则要借助最后的Linux发行版了
# 注意使用管理员权限的PS
diskpart
list disk # 确认 PHYSICALDRIVE0 对应的磁盘号(如 Disk 0)
select disk 0
list partition # 确认 EFI 分区号(通常是分区 1)
select partition 1
assign letter=Z # 分配盘符 Z(若冲突可换其他字母)
exit
# 卸载
remove letter=Z
exit
然后在管理员权限的WT下,开启一个WSL(注意要在挂载后,再开启一个WSL,要不然读不到Z盘内容,同时必须得给WSL管理权限,普通WSL无法读取Z盘)
sudo vim /mnt/z/grub/grub.cfg
# 把set default的数值改成0,就变形默认启动linux引导项了
Update: 20250213
在DeepSeek-R1面前,我仿佛单纯地像个新兵蛋子,通过LLM的有效提醒,可以采用下面的解决方案(适用于主力为Arch Linux的方案):
# 采用grub-reboot临时修改默认的启动项, 传递进想要的启动项index
sudo grub-reboot 2
# 然后就可以重启进入win系统,win系统再重启就上面的默认启动项失效,恢复默认启动项
sudo reboot